Hierarchal data structures, such as graphs, may be useful for representing and processing information in a variety of application areas including, but not limited to, big data analytics, urban mobility, communication networks, and influence maximization in dynamic networks (e.g., social networks). For example, in case of a communication network, a graph data structure may be used to represent information related to connectivity between a set of communication devices in the communication network. Each communication device may be represented by a node in the graph. If a pair of communication devices are able to communicate with each other, they may be connected by an edge in the graph, and so on. The connectivity information maintained by such a graph may be used in various ways. For instance, the graph may be used to check whether two communication devices can communicate with each other. In addition, the graph may also be used to identify a shortest connectivity path between two communication devices, if the communication devices can communicate.
Under various circumstances, the information related to the various nodes represented in the graph may change frequently. Accordingly, due to the change in the information related to the underlying nodes, the graph may be updated. For instance, in case of the communication network, a communication link between one or more communication devices may snap. Further, certain communication devices may be switched off and hence be removed from the communication network. Under such circumstances, the edges representing the snapped communication link may be removed from the graph. Further, the node representing the switched off communication device may be removed from the graph. Thus, to identify a path between any two communication devices, the graph may be required to be processed again. However, this may lead to an increase in computational and time requirements. Hence, there is a need for methods and systems to efficiently process dynamically changing graphs.